/* 控件全局配置start --------------------------------------------------------------------- */
$.ajaxSetup({
	cache: false
});

// layer皮肤设置
layer.config({
	extend: 'moon/style.css',
	skin: 'layer-ext-moon'
});

// laydate 日期表单
lay('.item-datetime').each(function(){
  laydate.render({
    elem: this,
    theme: '#3C8DBC',
    type: 'datetime',
    trigger: 'click',
  });
});

// laydate 日期范围表单
lay('.item-datetime-range').each(function(){
  laydate.render({
    elem: this,
    theme: '#3C8DBC',
    range: '~',
    type: 'datetime',
    trigger: 'click',
  });
});

// select2插件全局初始化
$(".select2").select2();
$(".select2").on("select2:select", function(e) {
	var id = $(this).attr("id");
	$("#" + id + "-error").remove();
});

// 图片查看
$(document).on('click', '[data-toggle="lightbox"]', function(event) {
	event.preventDefault();
	$(this).ekkoLightbox();
});

// 提示信息设置
toastr.options.timeOut = 1000;
/* 控件全局配置end ------------------------------------------------------------------------- */

/* 页签操作start -------------------------------------------------------------------------- */
/** 刷新选项卡 */
var refreshItem = function(){
	var topWindow = $(window.parent.document);
	var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
	var target = $('.J_iframe[data-id="' + currentId + '"]', topWindow);
	var url = target.attr('src');
	target.attr('src', url).ready();
}

/** 关闭选项卡 */
var closeItem = function(dataId){
	var topWindow = $(window.parent.document);
	if(!$.common.isEmpty(dataId)){
		window.parent.$.modal.closeLoading();
		// 根据dataId关闭指定选项卡
		$('.J_menuTab[data-id="' + dataId + '"]', topWindow).remove();
		// 移除相应tab对应的内容区
		$('.J_mainContent .J_iframe[data-id="' + dataId + '"]', topWindow).remove();
		return;
	}
	var panelUrl = window.frameElement.getAttribute('data-panel');
	$('.page-tabs-content .active i', topWindow).click();
	if(!$.common.isEmpty(panelUrl)){
		$('.J_menuTab[data-id="' + panelUrl + '"]', topWindow).addClass('active').siblings('.J_menuTab').removeClass('active');
		$('.J_mainContent .J_iframe', topWindow).each(function() {
			if ($(this).data('id') == panelUrl) {
				$(this).show().siblings('.J_iframe').hide();
				return false;
			}
		});
	}
}

/** 创建选项卡 */
function createMenuItem(dataUrl, menuName) {
	var panelUrl = window.frameElement.getAttribute('data-id');
	dataIndex = Math.floor((Math.random() * 100) + 1);
	flag = true;
	if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
	var topWindow = $(window.parent.document);
	// 选项卡菜单已存在
	$('.J_menuTab', topWindow).each(function() {
		if ($(this).data('id') == dataUrl) {
			if (!$(this).hasClass('active')) {
				$(this).addClass('active').siblings('.J_menuTab').removeClass('active');
				$('.page-tabs-content').animate({ marginLeft: ""}, "fast");
				scrollToTab(this);
				// 显示tab对应的内容区
				$('.J_mainContent .J_iframe', topWindow).each(function() {
					if ($(this).data('id') == dataUrl) {
						$(this).show().siblings('.J_iframe').hide();
						return false;
					}
				});
			}
			flag = false;
			return false;
		}
	});
	// 选项卡菜单不存在
	if (flag) {
		var str = '<a href="javascript:;" class="active J_menuTab" data-id="' + dataUrl + '" data-panel="' + panelUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
		$('.J_menuTab', topWindow).removeClass('active');
		// 添加选项卡对应的iframe
		var str1 = '<iframe class="J_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" data-panel="' + panelUrl + '" seamless></iframe>';
		$('.J_mainContent', topWindow).find('iframe.J_iframe').hide().parents('.J_mainContent').append(str1);
		window.parent.$.modal.loading("数据加载中，请稍后...");
		$('.J_mainContent iframe:visible', topWindow).load(function () {
			window.parent.$.modal.closeLoading();
		});
		// 添加选项卡
		$('.J_menuTabs .page-tabs-content', topWindow).append(str);
		scrollToTab($('.J_menuTab.active', topWindow));
	}
	return false;
}

/* 滚动到指定选项卡 */
function scrollToTab(element) {
	var topWindow = $(window.parent.document);
	var marginLeftVal = calSumWidth($(element).prevAll()),
	marginRightVal = calSumWidth($(element).nextAll());
	// 可视区域非tab宽度
	var tabOuterWidth = calSumWidth($(".content-tabs", topWindow).children().not(".J_menuTabs"));
	//可视区域tab宽度
	var visibleWidth = $(".content-tabs", topWindow).outerWidth(true) - tabOuterWidth;
	//实际滚动宽度
	var scrollVal = 0;
	if ($(".page-tabs-content", topWindow).outerWidth() < visibleWidth) {
		scrollVal = 0;
	} else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
		if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
			scrollVal = marginLeftVal;
			var tabElement = element;
			while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content", topWindow).outerWidth() - visibleWidth)) {
				scrollVal -= $(tabElement).prev().outerWidth();
				tabElement = $(tabElement).prev();
			}
		}
	} else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
		scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
	}
	$('.page-tabs-content', topWindow).animate({ marginLeft: 0 - scrollVal + 'px' }, "fast");
}

/* 计算元素集合的总宽度 */
function calSumWidth(elements) {
	var width = 0;
	$(elements).each(function() {
		width += $(this).outerWidth(true);
	});
	return width;
}
/* 页签操作end --------------------------------------------------------------------------------- */

/* 回到顶部绑定start ---------------------------------------------------------------------------- */
$(function() {
	if ($.fn.toTop !== undefined) {
		$('#scroll-up').toTop();
	}
});

(function($) {
	'use strict';
	$.fn.toTop = function(opt) {
		var elem = this;
		var win = $(window);
		var doc = $('html, body');
		var options = $.extend({
			autohide : true,
			offset : 50,
			speed : 500,
			position : true,
			right : 15,
			bottom : 5
		}, opt);
		elem.css({
			'cursor' : 'pointer'
		});
		if (options.autohide) {
			elem.css('display', 'none');
		}
		if (options.position) {
			elem.css({
				'position' : 'fixed',
				'right' : options.right,
				'bottom' : options.bottom,
			});
		}
		elem.click(function() {
			doc.animate({
				scrollTop : 0
			}, options.speed);
		});
		win.scroll(function() {
			var scrolling = win.scrollTop();
			if (options.autohide) {
				if (scrolling > options.offset) {
					elem.fadeIn(options.speed);
				} else
					elem.fadeOut(options.speed);
			}
		});
	};
})(jQuery);
/* 回到顶部绑定end -------------------------------------------------------------------------------- */